package top.malaoshi.webmvc.exception;

public class BeanCreationException extends RuntimeException{

    /**
     *
     * @param beanName 创建 bean 的名字
     * @param fieldClass 成员变量的 class 路径
     * @param num 发现 与 成员变量同类型的对象的数量
     * @param beanNames 成员变量同类型的对象名
     */
    public BeanCreationException(String beanName, String fieldClass,int num,String ... beanNames) {
        super(String.format("创建bean '%s' 发生错误，'%s' 类型的对象发现 %s 个，", beanName,fieldClass,num)+String.join(",",beanNames) );
    }

    /**
     *
     * @param beanName 创建 bean 的名字
     * @param fieldClass 成员变量的 class 路径
     */
    public BeanCreationException(String beanName, String fieldClass) {
        super(String.format("创建bean '%s' 发生错误，'%s' 类型的对象发现 0 个，", beanName,fieldClass) );
    }

    public BeanCreationException(Throwable cause) {
        super(cause);
    }

    /**
     *
     * @param beanName 创建 bean 的名字
     * @param fieldClass 成员变量的 class 路径
     * @param fieldClassName 成员变量同类型的对象名
     */
    public BeanCreationException(String beanName, String fieldClass,String fieldClassName) {
        super(String.format("创建bean '%s' 发生错误，'%s' 类型的对象，且名字是 '%s' 发现 0 个，", beanName,fieldClass,fieldClassName) );
    }
}
